TurboCapture-Seq mouse dendritic cells

Recap

Prior 96w evaluation of TurboCapture-Seq v2 showed low UMIs recovered and high seq saturation. I did low throughput troubleshooting and didn’t see any issues. Process this experiment myself taking care to remove residual liquids from wash steps.

Process Hui Shi of Naik lab Flt3 stimulated DC timecourse. Includes a few of my samples.

Samples

  • Sorted dendritic cells
  • HEK293T cell lysates in 1x TCL @ cells/uL
  • PBMC cell lysates in 1x TCL @ 500 cells/uL
  • No template control 1x TCL

Notebook recap

SCE object in generate in 1A_generateSCE notebook.

Notebook aim

Plot the QC metrics.

Read SCE and extract col data

sce <- readRDS(here::here(
   "data/TIRE_dendritic_mouse/SCEs/", "DCs_basic.sce.rds"))

tb <- as_tibble(colData(sce))

tb$Timepoint_Day <- as.factor(tb$Timepoint_Day)

Check on plate map representation

Plot on plate map Orientation is correct as low counts are where the no template control should be

p1 <- platetools::raw_map(data=tb$Cell_number, 
                     well=tb$Well, 
                     plate=96) + ggtitle("Cell input number")

p2 <- platetools::raw_map(data=log(tb$sum+1), 
                     well=tb$Well, 
                     plate=96) + ggtitle("Log library size")

p1 / p2

Remove NA samples

tb <- tb[!is.na(tb$Cell_type),]

High expressing genes

High expressors

Well under 1 million counts which is the UMI n = 10 length. We are within the dynamic range of the assay.

plotHighestExprs(sce, n=10, as_percentage=F, colour_cells_by = "Ligand") + theme_Publication()

Look at the individual genes

plotExpression(sce, features = c("Gm10076", "Tmsb10", "Rps3", "Fau"), colour_by = "Ligand", exprs_values = "counts") + 
  theme_Publication() + scale_colour_Publication()

Library size and gene plots

Library size log

The text represents the timepoint. No clear pattern to me except maybe the genotype.

plt1 <- ggplot(tb,
             aes(x = Cell_type, y= sum, colour = Genotype, label = Timepoint_Day, shape=Ligand)) + 
  geom_text() + 
  ylab("Library Size (UMIs)") + 
  xlab("Lysis buffer") +
  scale_y_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "l") +
  scale_fill_brewer(palette = "Dark2")

plt1
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Library size natural scale

plt2 <- ggplot(tb,
             aes(x = Cell_type, y= sum, colour = Genotype, label = Timepoint_Day, shape=Ligand)) +
  geom_text() + 
  ylab("Library Size (UMIs)") + 
  xlab("Lysis buffer") +  
  scale_fill_brewer(palette = "Dark2")

plt2
Library size in deduplicated UMIs

Library size in deduplicated UMIs

Detected genes

plt3 <- ggplot(tb,
             aes(x = Cell_type, y= detected, colour = Genotype, label = Timepoint_Day, shape=Ligand)) +
  geom_text() + 
  ylab("Genes detected") + 
  xlab("Lysis buffer") +
  scale_fill_brewer(palette = "Dark2")

plt3
Number of detected genes

Number of detected genes

Genes v UMIs

Not much pattern here except HEKs and PBMCs from me. Fewer genes detected across comparable UMIs.

plt4 <- ggplot(tb, 
             aes(x = detected+1, y= sum+1, colour = Cell_type, label=Well)) + 
  geom_text() + 
  ylab("Library size (UMIs)") + 
  xlab("Genes detected") +
  scale_y_continuous(trans='log10') + scale_x_continuous(trans='log10') +
  annotation_logticks(base = 10, sides = "bl")

plt4
UMIs versus genes

UMIs versus genes

Mitochondrial genes

Very low percentage for everything. Cell health looks good.

plt5 <- ggplot(tb,
             aes(x = Cell_type, y= subsets_Mito_percent, colour = Genotype, label = Timepoint_Day, shape=Ligand)) +
  geom_text() + 
  ylab("Percent mouse mitochondrial genes") + 
  xlab("Lysis buffer") +
  scale_fill_brewer(palette = "Dark2")

plt5
Percent mouse mitochondrial counts in library

Percent mouse mitochondrial counts in library

Conclusion

Quality of the sample looks good to me. Will further check by clustering samples

Session info

sessionInfo()
## R version 4.4.0 (2024-04-24)
## Platform: x86_64-pc-linux-gnu
## Running under: CentOS Linux 7 (Core)
## 
## Matrix products: default
## BLAS:   /stornext/System/data/apps/R/R-4.4.0/lib64/R/lib/libRblas.so 
## LAPACK: /stornext/System/data/apps/R/R-4.4.0/lib64/R/lib/libRlapack.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Australia/Melbourne
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] grid      stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] scales_1.3.0                ggthemes_5.1.0             
##  [3] here_1.0.1                  patchwork_1.2.0            
##  [5] platetools_0.1.7            scater_1.32.0              
##  [7] scuttle_1.14.0              lubridate_1.9.3            
##  [9] forcats_1.0.0               stringr_1.5.1              
## [11] dplyr_1.1.4                 purrr_1.0.2                
## [13] readr_2.1.5                 tidyr_1.3.1                
## [15] tibble_3.2.1                ggplot2_3.5.1              
## [17] tidyverse_2.0.0             SingleCellExperiment_1.26.0
## [19] SummarizedExperiment_1.34.0 Biobase_2.64.0             
## [21] GenomicRanges_1.56.0        GenomeInfoDb_1.40.0        
## [23] IRanges_2.38.0              S4Vectors_0.42.0           
## [25] BiocGenerics_0.50.0         MatrixGenerics_1.16.0      
## [27] matrixStats_1.3.0          
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.2.1          viridisLite_0.4.2        
##  [3] farver_2.1.2              vipor_0.4.7              
##  [5] viridis_0.6.5             fastmap_1.2.0            
##  [7] digest_0.6.35             rsvd_1.0.5               
##  [9] timechange_0.3.0          lifecycle_1.0.4          
## [11] magrittr_2.0.3            compiler_4.4.0           
## [13] rlang_1.1.3               sass_0.4.9               
## [15] tools_4.4.0               utf8_1.2.4               
## [17] yaml_2.3.8                knitr_1.46               
## [19] labeling_0.4.3            S4Arrays_1.4.0           
## [21] DelayedArray_0.30.1       RColorBrewer_1.1-3       
## [23] abind_1.4-5               BiocParallel_1.38.0      
## [25] withr_3.0.0               fansi_1.0.6              
## [27] beachmat_2.20.0           colorspace_2.1-0         
## [29] cli_3.6.2                 rmarkdown_2.26           
## [31] crayon_1.5.2              generics_0.1.3           
## [33] rstudioapi_0.16.0         httr_1.4.7               
## [35] tzdb_0.4.0                DelayedMatrixStats_1.26.0
## [37] ggbeeswarm_0.7.2          cachem_1.1.0             
## [39] zlibbioc_1.50.0           parallel_4.4.0           
## [41] XVector_0.44.0            vctrs_0.6.5              
## [43] Matrix_1.7-0              jsonlite_1.8.8           
## [45] BiocSingular_1.20.0       hms_1.1.3                
## [47] BiocNeighbors_1.22.0      ggrepel_0.9.5            
## [49] irlba_2.3.5.1             beeswarm_0.4.0           
## [51] jquerylib_0.1.4           glue_1.7.0               
## [53] codetools_0.2-20          cowplot_1.1.3            
## [55] stringi_1.8.4             gtable_0.3.5             
## [57] UCSC.utils_1.0.0          ScaledMatrix_1.12.0      
## [59] munsell_0.5.1             pillar_1.9.0             
## [61] htmltools_0.5.8.1         GenomeInfoDbData_1.2.12  
## [63] R6_2.5.1                  sparseMatrixStats_1.16.0 
## [65] rprojroot_2.0.4           evaluate_0.23            
## [67] lattice_0.22-6            highr_0.10               
## [69] bslib_0.7.0               Rcpp_1.0.12              
## [71] gridExtra_2.3             SparseArray_1.4.3        
## [73] xfun_0.44                 pkgconfig_2.0.3